diff --git a/system/application/config/config.php b/system/application/config/config.php
index fc47240..3c3b423 100644
--- a/system/application/config/config.php
+++ b/system/application/config/config.php
@@ -144,29 +144,13 @@
 
 /*
 |--------------------------------------------------------------------------
-| Error Logging
-|--------------------------------------------------------------------------
-|
-<<<<<<< .mine
-| Options are "local" or "gmt".  This pref tells the system whether to use 
-| your server's local time as the master "now" reference, or convert it to 
-| GMT.  See the "date helper" page of the user guide for information 
-| regarding date handling.
-|
-*/
-$config['time_reference'] = 'local';
-
-/*
-|--------------------------------------------------------------------------
 | Error Logging Threshold
 |--------------------------------------------------------------------------
 |
 | If you have enabled error logging, you can set an error threshold to 
 | determine what gets logged. Threshold options are:
-=======
 | You can enable error logging by setting a threshold over zero. The
 | threshold determines what gets logged. Threshold options are:
->>>>>>> .r388
 |
 |	0 = Disables logging
 | 	0 = Error logging TURNED OFF
@@ -302,4 +286,17 @@
 $config['time_reference'] = 'local';
 
 
+/*
+|--------------------------------------------------------------------------
+| Rewrite PHP Short Tags
+|--------------------------------------------------------------------------
+|
+| If your PHP installation does not have short tag support enabled CI
+| can rewrite the tags on-the-fly, enabling you to utilize that syntax
+| in your view files.  Options are TRUE or FALSE (boolean)
+|
+*/
+$config['rewrite_short_tags'] = FALSE;
+
+
 ?>
\ No newline at end of file
diff --git a/system/codeigniter/Common.php b/system/codeigniter/Common.php
index 06e9220..41e13be 100644
--- a/system/codeigniter/Common.php
+++ b/system/codeigniter/Common.php
@@ -127,7 +127,7 @@
 * @access	public
 * @return	mixed
 */
-function &config_item($item)
+function config_item($item)
 {
 	static $config_item = array();
 
@@ -197,7 +197,7 @@
 {
 	static $LOG;
 	
-	$config = get_config();
+	$config =& get_config();
 	if ($config['log_threshold'] == 0)
 	{
 		return;
@@ -247,7 +247,7 @@
 	}
 	
 	// Should we log the error?  No?  We're done...
-	$config = get_config();
+	$config =& get_config();
 	if ($config['log_threshold'] == 0)
 	{
 		return;
diff --git a/system/libraries/Config.php b/system/libraries/Config.php
index c4ea9b4..28409fb 100644
--- a/system/libraries/Config.php
+++ b/system/libraries/Config.php
@@ -44,7 +44,7 @@
 	 */
 	function CI_Config()
 	{
-		$this->config = get_config();
+		$this->config =& get_config();
 		log_message('debug', "Config Class Initialized");
 	}  	
   	
diff --git a/system/libraries/Loader.php b/system/libraries/Loader.php
index 709d9fe..1176265 100644
--- a/system/libraries/Loader.php
+++ b/system/libraries/Loader.php
@@ -606,7 +606,7 @@
 		// do a little string replacement, changing the short tags
 		// to standard PHP echo statements.
 		
-		if ((bool) @ini_get('short_open_tag') === FALSE)
+		if ((bool) @ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE)
 		{
 			echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents($path))).'<?php ');
 		}
@@ -617,7 +617,7 @@
 		
 		log_message('debug', 'File loaded: '.$path);
 		
-		// Return the file data if requested to
+		// Return the file data if requested
 		if ($return === TRUE)
 		{		
 			$buffer = ob_get_contents();
diff --git a/system/libraries/Log.php b/system/libraries/Log.php
index 03dc640..b21096c 100644
--- a/system/libraries/Log.php
+++ b/system/libraries/Log.php
@@ -42,7 +42,7 @@
 	 */
 	function CI_Log()
 	{
-		$config = get_config();
+		$config =& get_config();
 		
 		$this->log_path = ($config['log_path'] != '') ? $config['log_path'] : BASEPATH.'logs/';
 		
